package com.yq.ylmall.wechat.service;

import com.yq.ylmall.dto.order.OrderInfoDto;
import com.yq.ylmall.wechat.entity.RefundReason;

import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Map;

/**
 * @Project: yourlife
 * @Name: WechatService
 * @Author: Jack_Li
 * @Date: 2024/6/13 15:49
 */

public interface WechatPayService {

    Map<String, Object> nativePay(String orderNo) throws IOException;

    Map<String, Object> nativePay(OrderInfoDto orderInfoDto) throws IOException;

    void processOrder(Map<String, Object> bodyMap) throws GeneralSecurityException;

    void cancelOrder(String orderNo) throws Exception;

    String queryOrder(String orderNo) throws Exception;

    void checkOrderStatus(String orderNo) throws Exception;

    void refund(RefundReason reason) throws IOException;

    String queryRefund(String orderNo) throws IOException;

    void processRefund(Map<String, Object> bodyMap) throws GeneralSecurityException;
}
